home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / pvm34b3.zip / pvm34b3 / pvm3 / lib / pvmgetarch < prev    next >
Text File  |  1997-07-22  |  5KB  |  226 lines

  1. #!/bin/sh
  2. #
  3. # $Id: pvmgetarch,v 1.8 1997/07/21 20:53:42 pvmsrc Exp $
  4. #
  5. # pvmgetarch.sh
  6. #
  7. # Generate PVM architecture string.
  8. #
  9. # This is a heuristic thing that may need to be tuned from time
  10. # to time.  I don't know of a real solution to determining the
  11. # machine type.
  12. #
  13. # Notes:
  14. #   1. Local people mess with things.
  15. #   2. It's good to try a few things for robustness.
  16. #   3. Don't use test -x
  17. #
  18. # 08 Apr 1993  Robert Manchek  manchek@CS.UTK.EDU.
  19. # 24 Aug 1994  last revision
  20. # 28 Jul 1995  release 3.3.8
  21. #
  22.  
  23. #
  24. # begin section that may need to be tuned.
  25. #
  26. ARCH=UNKNOWN
  27.  
  28. #
  29. # determine the machine type from scratch
  30. #
  31. if [ -f /bin/uname -o -f /usr/bin/uname ]; then
  32.     if [ -f /bin/uname ]; then
  33.         os="`/bin/uname -s`"
  34.         ht="`/bin/uname -m`"
  35.         ov="`/bin/uname -v`"
  36.     else
  37.         os="`/usr/bin/uname -s`"
  38.         ht="`/usr/bin/uname -m`"
  39.         ov="`/usr/bin/uname -v`"
  40.     fi
  41.  
  42.     case "$os,$ht" in
  43.     SunOS,sun3* )           ARCH=SUN3 ;;
  44.     SunOS,sun4* )           ARCH=SUN4 ;;
  45.     SunOS,i86pc )           ARCH=X86SOL2 ;;
  46.     ULTRIX,RISC )           ARCH=PMAX ;;
  47.     ULTRIX,VAX )            ARCH=UVAX ;;
  48.     AIX*,* )                ARCH=RS6K ;;
  49.     *HP*,9000/[2345]* )     ARCH=HP300 ;;
  50.     *HP*,9000/[78]* )       ARCH=HPPA ;;
  51.     IRIX,* )                ARCH=SGI ;;
  52.     IRIX64,* )              ARCH=SGI64 ;;
  53.     *,alpha )               ARCH=ALPHA ;;
  54.     CRSOS,smp )             ARCH=CRAYSMP ;;
  55.     *,paragon )             ARCH=PGON ;;
  56.     dgux,AViiON )           ARCH=DGAV ;;
  57.     *,88k )                 ARCH=E88K ;;
  58.     *,mips )                ARCH=MIPS ;;
  59.     *,CRAY-2 )              ARCH=CRAY2 ;;
  60.     Linux,i[3456]86 )       ARCH=LINUX ;;
  61.     Linux,sparc)            ARCH=LINUXSPARC ;;
  62.     BSD/OS,i[3456]86 )      ARCH=BSD386 ;;
  63.     FreeBSD,i386 )          ARCH=FREEBSD ;;
  64.     SUPER-UX,SX-3 )         ARCH=SX3 ;;
  65.     uts,* )                 ARCH=UTS2 ;;
  66.     realix,M88* )           ARCH=M88K ;;
  67.     DomainOS,DN* )          ARCH=APOLLO ;;
  68.     esac
  69. fi
  70.  
  71. if [ "$ARCH" = UNKNOWN ]; then
  72.     if [ -f /bin/arch ]; then
  73.         case "`/bin/arch`" in
  74.         ksr1 ) ARCH=KSR1 ;;
  75.         sun2 ) ARCH=SUN2 ;;
  76.         sun3 ) ARCH=SUN3 ;;
  77.         sun4 ) ARCH=SUN4 ;;
  78.         esac
  79.     fi
  80. fi
  81.  
  82. if [ "$ARCH" = UNKNOWN ]; then
  83.  
  84.     if [ -f /usr/etc/RELDEF ]; then ARCH=ATT; fi
  85.  
  86.     if [ -f /ultrixboot ]; then
  87.         if [ -f /pcs750.bin ]; then
  88.             ARCH=UVAX
  89.         else
  90.             ARCH=PMAX
  91.         fi
  92.     else
  93.         if [ -f /pcs750.bin ]; then ARCH=VAX; fi
  94.     fi
  95.  
  96.     if [ -d /usr/alliant ]; then ARCH=AFX8; fi
  97.     if [ -f /usr/bin/cluster ]; then ARCH=BFLY; fi
  98.     if [ -d /usr/convex ]; then ARCH=CNVX; fi
  99.     if [ -f /unicos ]; then ARCH=CRAY; fi
  100.     if [ -f /hp-ux ]; then ARCH=HP300; fi
  101.     if [ -f /usr/bin/getcube ]; then ARCH=I860; fi
  102.     if [ -f /usr/bin/asm56000 ]; then ARCH=NEXT; fi
  103.     if [ -f /etc/vg ]; then ARCH=RS6K; fi
  104.     if [ -d /usr/include/caif ]; then ARCH=RT; fi
  105.     if [ -f /bin/4d ]; then ARCH=SGI; fi
  106.     if [ -f /dynix ]; then ARCH=SYMM; fi
  107.     if [ -f /bin/titan ]; then ARCH=TITN; fi
  108.  
  109.     if [ -f /netbsd ]; then
  110.         case "`/usr/bin/machine`" in
  111.         i386)   ARCH=NETBSDI386 ;;
  112.         amiga)  ARCH=NETBSDAMIGA ;;
  113.         hp300)  ARCH=NETBSDHP300 ;;
  114.         mac68k) ARCH=NETBSDMAC68K ;;
  115.         pmax)   ARCH=NETBSDPMAX ;;
  116.         sparc)  ARCH=NETBSDSPARC ;;
  117.         sun3)   ARCH=NETBSDSUN3 ;;
  118.         esac
  119.     elif [ -f /usr/bin/machine ]; then
  120.         case "`/usr/bin/machine`" in
  121.         i386 ) ARCH=BSD386 ;;
  122.         esac
  123.     fi
  124.     if [ -f /usr/bin/uxpm ] && /usr/bin/uxpm ; then
  125.         ARCH=UXPM
  126.     fi
  127. fi
  128.  
  129. if [ "$ARCH" = UNKNOWN ]; then
  130.     if [ -f /bin/uname -o -f /usr/bin/uname ]; then
  131.         if [ -f /bin/uname ]; then
  132.             os="`/bin/uname -s`"
  133.             ht="`/bin/uname -m`"
  134.             rv="`/bin/uname -r`"
  135.         else
  136.             os="`/usr/bin/uname -s`"
  137.             ht="`/usr/bin/uname -m`"
  138.             rv="`/usr/bin/uname -r`"
  139.         fi
  140.  
  141.         case "$os,$ht" in
  142.         *,i[3456]86 )    case "$rv" in
  143.                 4.*) ARCH=UWARE ;;
  144.                 *) ARCH=SCO ;;
  145.                 esac
  146.         esac
  147.     fi
  148. fi
  149.  
  150. #
  151. # update the machine type to derive subclasses
  152. #
  153. if [ "$ARCH" = SUN4 ]; then
  154.     rel="`/bin/uname -r`"
  155.     case "$rel" in
  156.     5.* )   ARCH=SUN4SOL2 ;;
  157.     esac
  158. fi
  159. if [ "$ARCH" = SUN4SOL2 ]; then
  160.     nproc="`/bin/mpstat | wc -l`"
  161.     if [ $nproc -gt 2 -a "$PVM_SHMEM" = ON ];
  162.         then ARCH=SUNMP;
  163.     fi
  164. fi
  165. if [ "$ARCH" = ALPHA ]; then
  166.     rel="`/usr/bin/uname -r`"
  167.     case "$rel" in
  168.     *[34].*)
  169.         nproc="`/usr/sbin/sizer -p`"
  170.         if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ];
  171.             then ARCH=ALPHAMP;
  172.         fi ;;
  173.     esac
  174. fi
  175. if [ "$ARCH" = SGI ]; then
  176.     rel="`/bin/uname -r`"
  177.     case "$rel" in
  178.     5.* )   ARCH=SGI5 ;;
  179.     6.* )   ARCH=SGI5 ;;
  180.     esac
  181. fi
  182. if [ "$ARCH" = SGI64 ]; then
  183.     nproc="`/usr/sbin/mpadmin -n | wc -w`"
  184.     if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ];
  185.         then ARCH=SGIMP64;
  186.     fi
  187. fi
  188. if [ "$ARCH" = SGI5 ]; then
  189.     nproc="`/usr/sbin/mpadmin -n | wc -w`"
  190.     if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ];
  191.         then ARCH=SGIMP;
  192.     fi
  193. fi
  194. if [ "$ARCH" = SUN4 -a -f /dev/cm ]; then ARCH=CM2; fi
  195. if [ "$ARCH" = SUN4 -a -f /dev/cmni ]; then ARCH=CM5; fi
  196. if [ "$ARCH" = CNVX ]; then
  197.     if /usr/convex/getsysinfo -f native_default; then
  198.         ARCH=CNVXN
  199.     fi
  200. fi
  201. if [ "$ARCH" = PMAX -a -d /usr/maspar ]; then ARCH=MASPAR; fi
  202. if [ "$ARCH" = RS6K ]; then
  203.     case "$os,$ov" in
  204.     AIX*,4 )    nproc="`/usr/sbin/lsdev -C -c processor | wc -l`"
  205.             if [ $nproc -gt 1 -a "$PVM_SHMEM" = ON ]; then 
  206.                 ARCH=AIX4MP;
  207.             else
  208.                 ARCH=AIX46K;
  209.             fi ;;
  210.     esac
  211. fi
  212. if [ "$ARCH" = HPPA -a -f /bin/sysinfo ]; then ARCH=CSPP; fi
  213. if [ "$ARCH" = HPPA ]; then
  214.     nproc="`/usr/bin/vmstat -n | wc -l`"
  215.     if [ $nproc -gt 8 -a "$PVM_SHMEM" = ON ];
  216.         then ARCH=HPPAMP;
  217.     fi
  218. fi
  219. #
  220. # ugh, done.
  221. #
  222.  
  223. echo $ARCH
  224. exit
  225.  
  226.